﻿using System.ComponentModel;

namespace ScrobbleItSL.ViewModelUtils
{
    /// <summary>
    /// Базовый класс для моделей представлений. 
    /// Содержащит общее для всех потомков поле - отображаемое имя представления
    /// </summary>
    public abstract class ViewModelBase : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        /// <summary>
        /// Отображаемое имя представления
        /// </summary>
        public string DisplayName { get; set; }

        /// <summary>        
        /// вызывает событие PropertyChanged
        /// </summary>
        /// <param name="propertyName">имя свойства</param>
        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                var e = new PropertyChangedEventArgs(propertyName);
                PropertyChanged(this, e);
            }
        }
    }
}
